1
Le contrat ISA et l'état architectural
AI031Lesson 3
00:00

Le Architecture de jeu d'instructions (ISA) agit comme un niveau fondamental niveau d'abstraction et un contrat formel entre logiciel et matériel. Alors que les langages haut niveau comme C masquent la complexité, l'ISA révèle l' état architectural—la configuration précise des registres et de la mémoire du processeur.

1. L'état architectural

Un processeur x86-64 définit son état à travers plusieurs composants clés :

  • Compteur de programme (%rip) : Contient l'adresse de l'instruction suivante.
  • Fichier de registres entiers : 16 registres généraux (par exemple, %rax, %rbx) stockant des valeurs de 64 bits.
  • Codes de condition : Drapeaux (ZF, SF, CF, OF) pour le flux de contrôle.
  • Registres vectoriels : Tel que registres YMM (256 bits) pour les opérations SIMD.

2. Abstraction mémoire

Le code machine considère la mémoire comme un grand tableau adressable par octet. Bien que x86-64 prenne en charge les adresses virtuelles de 64 bits, les implémentations actuelles utilisent souvent un espace d'adressage de 48 bits ($2^{48}$ octets). Nous catégorisons les tailles de données en Mot (16 bits), Double mot (32 bits) et Quadruple mot (64 bits).

CPU (État)%rip (CP)Registres (%rax..)Codes de conditionCONTRAT ISAmovq, ret, leaqMémoire virtuelle0xFFFF... (Pile)0x0000... (Code)

3. Évolution et compatibilité

Poussé par Loi de Moore, Intel s'est développé du 8086 au Core i7 Haswell. L'ISA garantit la compatibilité descendante, permettant au code machine ancien de s'exécuter sur des matériels modernes à plusieurs cœurs et hyperthreading.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>